// 定义一个函数来计算数学表达式
function calculateMathExpression(expression) {
  // 使用eval安全地计算表达式
  return eval(expression);
}

// 定义一个函数来寻找并计算字符串中的最长数学表达式
function extractAndCalculateLongestMathExpr(str) {
  // 正则表达式匹配数学表达式
  const mathExprRegex = /\([^\(\)]*\)/g; // 匹配括号内的内容作为表达式

  // 找到所有的数学表达式并存储起来
  const mathExprs = str.match(mathExprRegex) || [];

  // 按表达式长度降序排序
  mathExprs.sort((a, b) => b.length - a.length);

  // 如果找到了至少一个表达式
  if (mathExprs.length > 0) {
      // 计算最长的表达式
      const longestExpr = mathExprs[0];
      const result = calculateMathExpression(longestExpr);

      // 返回表达式和计算结果
      return {
          expression: longestExpr,
          result: result
      };
  }

  // 如果没有找到数学表达式，返回null
  return null;
}

// 示例使用
const str = "这是一个包含数学表达式的字符串：(2+3)*(4-1)+2*3-1) 和其他内容。";
const result = extractAndCalculateLongestMathExpr(str);
console.log(result); // 输出最长的数学表达式及其计算结果